{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4c27eda2",
   "metadata": {},
   "outputs": [],
   "source": [
    "#安装,如果出错,提示安装什么就安装什么\n",
    "#pip install gym==0.26"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ffe3d6f1",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/root/anaconda3/envs/pt39/lib/python3.9/site-packages/gym/envs/registration.py:555: UserWarning: \u001b[33mWARN: The environment CartPole-v0 is out of date. You should consider upgrading to version `v1`.\u001b[0m\n",
      "  logger.warn(\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import gym\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "#创建一个游戏环境\n",
    "env = gym.make('CartPole-v0', render_mode='rgb_array')\n",
    "\n",
    "#初始化游戏\n",
    "env.reset()\n",
    "\n",
    "#显示游戏\n",
    "plt.imshow(env.render())\n",
    "plt.show()\n",
    "\n",
    "#关闭游戏\n",
    "env.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "de6da20e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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QYG2bdumPXv26MiRI6qsrJTX69Xx48eDWX5IM8Zo2yefaEifPjpUUSEfR66Acy46OlqpqanKzs5Wbm6u/1Q4vo2AAkuLiYnRqFGjNGrUKEknH3L4+eef69NPP1VxcbE+++wzHThwwN+qmEfRKnX19Srk6YHAORceHq4LL7xQV155paZNm6aRI0eet5NfzxQBBSElNjZWw4YN07Bhw2SMUW1trTwejzwej8rKyvxXDxUVFWn37t2qrq4OdskAznOjRo3SrbfeqvHjx2vw4MGKiYkJdkkhgYCCkGWz2RQTE6M+ffqoT58+Msaovr5e1dXVqq6uVk1NjYqKirR582Zt3rxZhYWFBBYAHWbAgAFasGCBrrzySqWmpioqKirYJYUUAgo6DZvNpqioKEVFRalHjx4yxmjw4MGaNm2ampqaVFtbqx07duiDDz7Qpk2btHPnTvl8PtXV1amurk6NjY3B3gUAIS4mJka9evXS/fffr1tvvVUOh0NhYWFMfm0DAgo6rZbHjoeFhSkiIkJRUVG67LLLdNlll0mSqqqqtGfPHm3fvl0fffSRioqKdODAAR0+fFgNDQ1Brh5AKHE4HBo8eLCmT5+uefPmdfrn5HQEAgrOW926ddOYMWM0ZswYSdJXX32l/Px8bd68WQUFBdq+fbs8Hk+QqwRgZdHR0ZowYYImTZqka6+9VikpKRwtaScEFOAfunfvrquuuko5OTk6cOCA9u7dqy1btmj16tUqKChQfX19sEsEYBHR0dG68sorNXv2bF100UVKT08PdkmdDgEF+Ibw8HD17t1b6enpuvTSS3XnnXdq3759ev3117Vy5UodPnyYJzYD5ym73a4f/ehH+uUvf6kxY8YoPj6emxyeIwQU4Du0XCUUExOjxMREud1u/fM//7PWrVunV155RVu3btVXX32lmpoantYMdGLh4eFyOBzKzMzUgw8+qCuvvFLh4eGcyjnHCCjAGWi5463T6dT111+v66+/Xp9++qlWr16t9evXa9++ffrss89UW1sb7FIBtBObzaYLLrhAWVlZuummmzR16lQuFe5ABBSgjQYOHKiBAwfqpz/9qQoLC7V161Zt2bJFH374oT777LNglwfgLKSkpGjy5Mm66qqrdNlll6lHjx7BLum8Q0ABzlLXrl01duxYjR07VuXl5fr888/18ccf6y9/+Ys2bNjA05nP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QuphgUeOHFFTU1PAH4MkJSYmas+ePUGqKvR4PB5JOu04tqzzeDxKSEgIWB8REaH4+Hh/n/NNc3Oz7r33Xo0dO1bDhg2TdHKc7Ha74uLiAvp+cyxPN9Yt684XO3fulNvtVm1trWJjY7Vy5UplZGSosLCQMWyl1157TR999JEKCgq+tY6/yTOXlZWll156SYMGDVJZWZmWLl2qyy67TLt27WIcLSCkAgoQTLm5udq1a5fef//9YJcSkgYNGqTCwkJ5vV796U9/0uzZs5WXlxfsskLOgQMH9Itf/EJr165VdHR0sMsJaZMnT/a/zszMVFZWltLT0/X6668rJiYmiJVBCrGreHr27Knw8PBvzaIuLy+Xy+UKUlWhp2Wsvm8cXS6XKioqAtY3Njbq2LFj5+VYz58/X6tWrdJ7772nlJQU/3KXy6X6+npVVlYG9P/mWJ5urFvWnS/sdrv69++v0aNHa9myZRoxYoSeffZZxrCVtm3bpoqKCo0aNUoRERGKiIhQXl6efv3rXysiIkKJiYmMZxvFxcVp4MCB2rdvH3+XFhBSAcVut2v06NFat26df1lzc7PWrVsnt9sdxMpCS58+feRyuQLG0efzafPmzf5xdLvdqqys1LZt2/x91q9fr+bmZmVlZXV4zcFijNH8+fO1cuVKrV+/Xn369AlYP3r0aEVGRgaMZXFxsUpLSwPGcufOnQGBb+3atXI4HMrIyOiYHbGg5uZm1dXVMYatNGHCBO3cuVOFhYX+dtFFF2nmzJn+14xn21RXV6ukpERJSUn8XVpBsGfpttZrr71moqKizEsvvWR2795t5s6da+Li4gJmUePkDP/t27eb7du3G0nmP/7jP8z27dvNF198YYw5eZlxXFyc+fOf/2x27Nhhrr322tNeZnzhhReazZs3m/fff98MGDDgvLvMeN68ecbpdJoNGzYEXIp4/Phxf5+77rrLpKWlmfXr15utW7cat9tt3G63f33LpYgTJ040hYWFZs2aNaZXr17n1aWIDz30kMnLyzP79+83O3bsMA899JCx2Wzm//7v/4wxjOHZOvUqHmMYzzN13333mQ0bNpj9+/ebDz74wGRnZ5uePXuaiooKYwzjGGwhF1CMMeY3v/mNSUtLM3a73Vx88cXmww8/DHZJlvPee+8ZSd9qs2fPNsacvNT40UcfNYmJiSYqKspMmDDBFBcXB2zj6NGj5uabbzaxsbHG4XCY22+/3VRVVQVhb4LndGMoybz44ov+PidOnDB333236d69u+nSpYuZNm2aKSsrC9jO559/biZPnmxiYmJMz549zX333WcaGho6eG+C54477jDp6enGbrebXr16mQkTJvjDiTGM4dn6ZkBhPM/MjTfeaJKSkozdbjcXXHCBufHGG82+ffv86xnH4LIZY0xwjt0AAACcXkjNQQEAAOcHAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALCc/w+syIPB4KiUPQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython import display\n",
    "import time\n",
    "\n",
    "#创建月球着陆\n",
    "env = gym.make('LunarLander-v2', render_mode='rgb_array')\n",
    "\n",
    "#初始化游戏\n",
    "state = env.reset()\n",
    "\n",
    "#随机玩N个动作\n",
    "for i in range(300):\n",
    "    action = env.action_space.sample()\n",
    "    state, reward, terminated, truncated, info = env.step(action)\n",
    "    over = terminated or truncated\n",
    "\n",
    "    if i % 5 == 0:  #跳帧\n",
    "        #打印动画\n",
    "        display.clear_output(wait=True)\n",
    "        plt.imshow(env.render())\n",
    "        plt.show()\n",
    "\n",
    "    #游戏结束了就重置\n",
    "    if over:\n",
    "        state, info = env.reset()\n",
    "\n",
    "#关闭游戏\n",
    "env.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "06d2e85d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Discrete(4)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#游戏的动作空间\n",
    "env.action_space"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d7d27ad3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([1.5      , 1.5      , 5.       , 5.       , 3.1415927, 5.       ,\n",
       "        1.       , 1.       ], dtype=float32),\n",
       " array([-1.5      , -1.5      , -5.       , -5.       , -3.1415927,\n",
       "        -5.       , -0.       , -0.       ], dtype=float32))"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#游戏的状态空间\n",
    "env.observation_space.high, env.observation_space.low"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "d9435993",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-inf, inf)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#反馈值空间\n",
    "env.reward_range"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "45531d96",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/root/anaconda3/envs/pt39/lib/python3.9/site-packages/gym/utils/play.py:29: UserWarning: \u001b[33mWARN: Matplotlib is not installed, run `pip install gym[other]`\u001b[0m\n",
      "  logger.warn(\"Matplotlib is not installed, run `pip install gym[other]`\")\n"
     ]
    }
   ],
   "source": [
    "import gym\n",
    "import pygame\n",
    "from gym.utils.play import play\n",
    "\n",
    "#定义按键映射\n",
    "mapping = {(pygame.K_LEFT, ): 0, (pygame.K_RIGHT, ): 1}\n",
    "\n",
    "#直接玩游戏游戏,这要求有图形界面\n",
    "#play(gym.make('CartPole-v0'), keys_to_action=mapping)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:pt39]",
   "language": "python",
   "name": "conda-env-pt39-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
